System and method for integrated development environments for dynamically generating narrative content

ABSTRACT

The present invention is a method and apparatus for narrative content generation using narrative frameworks by receiving a first phrase variation and a second phrase variation and displaying an error indication when the first phrase variation fails to satisfy a criterion relative to the second phrase variation. If there is an error indication, alternate phrase variations are received and compared against the first phrase variation until an alternate phrase variation is selected that has no error indication. Additionally, multiple sets of operators for updating one or more narrative phrases selected for inclusion in the narrative content framework may be utilized to update selected phrases after inclusion in the narrative framework but prior to finalizing the narrative content to be output.

CROSS-REFERENCE TO RELATED APPLICATIONS

This application is a continuation of U.S. patent application Ser. No.14/483,986, filed Sep. 11, 2014 and issued as U.S. Pat. No. 9,519,635 onDec. 13, 2016, entitled “SYSTEM AND METHOD FOR INTEGRATED DEVELOPMENTENVIRONMENTS FOR DYNAMICALLY GENERATING NARRATIVE CONTENT.”

COPYRIGHT AND TRADEMARK NOTICE

A portion of the disclosure of this patent document contains materialwhich is subject to copyright protection. The copyright owner has noobjection to the facsimile reproduction of the patent document or thepatent disclosure, as it appears in the Patent and Trademark Officepatent file or records, but otherwise reserves all copyright rightswhatsoever. Trademarks are the property of their respective owners.

BACKGROUND

As content providers have moved to broaden and deepen their own news andother media offerings, they have accordingly sought ways to improveefficiency and minimize the cost of content generation. Contentgeneration produced in a narrative language context is particularlydifficult and costly to provide, but highly desired by clients ofsystems that produce news and other text media offerings. Among thegreatest expenses in the generation of narrative text offerings are thesalary and operating costs associated with maintaining a journalisticstaff of reporters and editors. The systems and methods described hereinrelate generally to programmatically generated narrative content.

BRIEF DESCRIPTION OF THE DRAWINGS

Certain illustrative embodiments illustrating organization and method ofoperation, together with objects and advantages may be best understoodby reference detailed description that follows taken in conjunction withthe accompanying drawings in which:

FIG. 1 is a schematic block diagram that illustrates a narrativeframework generation system, according to an embodiment.

FIG. 2 is a schematic diagram that illustrates an integrated developmentenvironment (IDE) engine according to another embodiment.

FIG. 3 is a schematic block diagram that illustrates a narrativeframework generation system, according to another embodiment.

FIG. 4 is a block diagram that illustrates a process of receiving phrasevariations at different time instances and defining a narrativeframework based thereon, according to another embodiment.

FIG. 5 is a flow diagram that illustrates a method of defining anarrative framework, according to another embodiment.

FIG. 6 is a flow diagram that illustrates a method of detecting logicalerrors in a narrative framework, according to another embodiment.

FIG. 7 is a screenshot of a Graphical User Interface (“GUI”) thatillustrates an exemplary preview narrative framework, as displayed to auser.

FIG. 8 is a screenshot of a GUI that illustrates configuration optionsavailable to a user for configuring an exemplary preview narrativeframework, according to an embodiment.

FIG. 9 is a screenshot of a GUI that illustrates configuration optionsavailable to a user for configuring an exemplary preview narrativeframework, according to an embodiment.

FIG. 10A is a screenshot of a GUI that illustrates an exemplary previewnarrative framework at a first time.

FIG. 10B is a screenshot of a GUI that illustrates an exemplary previewnarrative framework at a second time.

FIG. 11 is a screenshot of a GUI that illustrates exemplary sample data.

DETAILED DESCRIPTION

While this invention is susceptible of embodiment in many differentforms, there is shown in the drawings and will herein be described indetail specific embodiments, with the understanding that the presentdisclosure of such embodiments is to be considered as an example of theprinciples and not intended to limit the invention to the specificembodiments shown and described. In the description below, likereference numerals are used to describe the same, similar orcorresponding parts in the several views of the drawings.

The terms “a” or “an”, as used herein, are defined as one, or more thanone. The term “plurality”, as used herein, is defined as two, or morethan two. The term “another”, as used herein, is defined as at least asecond or more. The terms “including” and/or “having”, as used herein,are defined as comprising (i.e., open language). The term “coupled”, asused herein, is defined as connected, although not necessarily directly,and not necessarily mechanically.

Reference throughout this document to “one embodiment”, “certainembodiments”, “an exemplary embodiment” or similar terms means that aparticular feature, structure, or characteristic described in connectionwith the embodiment is included in at least one embodiment of thepresent invention. Thus, the appearances of such phrases or in variousplaces throughout this specification are not necessarily all referringto the same embodiment. Furthermore, the particular features,structures, or characteristics may be combined in any suitable manner inone or more embodiments without limitation.

Reference throughout this document to a network can be any computer orinformation network capable of marshalling, transmitting, routing,directing and/or forwarding data between two or more hardware devicesand/or software modules. For example, a network can be a local areanetwork (LAN), a wide area network (WAN) or the Internet. A network caninclude one or more wired and/or wirelessly connected hardware devices.

References throughout this document to code can be, but are not limitedto, micro-code or micro-instructions, machine instructions, such asproduced by a compiler, code used to produce a web service, and filescontaining higher-level instructions that are executed by a computerusing an interpreter. For example, embodiments may be implemented usingJava, C++, or other object-oriented programming languages anddevelopment tools. Additional examples of computer code include, but arenot limited to, control data, encrypted code, and compressed code.

Reference throughout this document to a statistics provider can be anyservice that provides statistics (e.g., sports statistics, financialmarket statistics, statistics related to performance of anorganization), news information (e.g., newswires, weather forecasts anddata), and/or other information associated with a past, current, orfuture real-world event, person, place and/or thing. The statisticsprovider can further provide statistics, news information and/or otherinformation associated with one or more virtual events (e.g.,information, data and/or statistics associated with a video game, afantasy sports league and/or team, etc.) In a non-limiting example, thestatistics provider can be a sports statistics service that providessubstantially real-time data associated with completed, in-progressand/or scheduled sporting events (e.g., completed game statistics,in-game statistics), one or more athletes, teams and/or leagues (e.g.,player statistics, team statistics, injury reports, season statistics),etc. In an alternative non-limiting example, the statistics provider canbe a weather information service that provides weather reports,forecasts, current conditions (e.g., temperature, barometric pressure),map information (e.g., satellite maps, radar maps), etc. Additionally,the statistics provider can be an organization that generates commentaryand financial reports (e.g., based on the organization's performancequarterly, annually, etc.). Such reports can be provided to employees ofthe organization and/or parties affiliated with the organization.

Reference throughout this document to a network card can be a hardwaremodule or device (wired and/or wireless Ethernet card, a cellularnetwork interface card) configured to transmit information such as datapackets, data cells, and other data communications in network acceptableformatting from and receive such information to the network card.

Reference throughout this document to a processor can be any processor(e.g., a central processing unit (CPU), an application-specificintegrated circuit (ASIC), a field programmable gate array (FPGA))configured to execute one or more instructions received from, forexample, a memory device or construct. In an exemplary embodiment, theprocessor can be a Reduced Instruction Set (RISC) processor. In anexemplary embodiment, the processor may send information (e.g., data,instructions and/or network data packets) to and/or receive informationfrom any memory device or network card in data communication with theprocessor.

Reference throughout this document to a memory can be any memory deviceor implementation, for example RAM, ROM, a hard disk drive, and opticaldrive, or other removable media configured to store information.

Reference throughout this document to a relational database, includingone or more relational database tables, can be any relational databasesuch as, for example, the relational database engine provided by Oracle,Microsoft SQL Server, MySQL, PostgreSQL, Informix and/or other databasesthat create and maintain databases using relational structures anddatabase management software.

Reference to “tone” in this document refers to the mood of the generatednarrative content created through the use of figurative language, pointof view and word choice. In a non-limiting example, a positiveperformance tone for generated narrative content can be associated witha positive, sanguine, energetic, hopeful, or other similar mood to thegenerated narrative content.

Reference to “theme” in this document refers to content associated withand/or based at least in part on a given theme, such as a series ofevents, an ongoing topic of interest, a predefined author style, such asa writing or composition style of a given author, journalist or otherindividual. In a non-limiting embodiment, a narrative framework caninclude phrases and/or phrase variations constructed in a similar style,fashion and/or manner to those of the author, journalist or otherindividual.

Reference throughout this document to a “narrative framework” refers toa data construct or module implemented in software and maintained in ahardware storage device and can include phrases and/or other kinds ofinformation and structural and/or data connections between the phrasesand other information contained within the narrative framework. In anexemplary embodiment, narrative frameworks defined by an IDE system (or,equivalently an IDE engine) can be used by content generation systems tocreate narrative content in natural human language. In an additionalexemplary embodiment, narrative frameworks defined by an IDE system caninclude input from users, e.g., in the form of various criteria,thresholds, templates, text, phrases, and freeform data. In additionalexemplary embodiments, an IDE system allows users to review and/orinteract with the narrative framework as it is being defined in realtime, e.g., for purposes of editing and making changes to the narrativeframework.

Reference throughout this document to a Graphical User Interface (“GUI”)may include displays having message areas, interactive fields, pop-upwindows, pull-down lists, notification areas, menus, tabs, and/orbuttons that can be operated by the user. The GUI may include multiplelevels of abstraction including groupings and boundaries. It should benoted that the term “GUI” may be used in the singular or in the pluralto describe one or more GUI's, and each of the displays of a particularGUI may provide the user of a client device with a user-friendlyinteractive environment and information associated with the IDE Engine.

One object of the present invention is to provide systems and methodsthat enable a content provider to define narrative frameworks (or,equivalently narrative content frameworks) that can be used to generatenarrative content without the use of a human writer and editor. Morespecifically, a need exists for systems and methods to define a widevariety of narrative frameworks that can be used to then generatenarratives or narrative content based on one or more events,occurrences, facts, persons, places, organizations and/or things, suchas sporting events, teams and/or players, financial institutions and/ormarkets, weather conditions, general news items, and/or the like. In anexemplary embodiment an IDE system can perform various checks todetermine that the narrative framework is free from logical errors,computational errors, statistical errors, syntax errors, run-time errorsand other pre-defined error conditions in an automatic editingoperation. In a non-limiting example, for error detection, and IDEsystem performs a comparison check to determine whether two or morephrases included in a generated narrative framework are grammaticallyconsistent with one another. In another non-limiting example, an IDEsystem can detect logical errors between phrases or variables includedin a generated narrative framework. In an embodiment, the IDE systemprovides real time indication to users of the IDE system for any errorsdetected in narrative frameworks, as those narrative frameworks aredefined and generated.

FIG. 1 is a schematic block diagram that illustrates a narrativeframework generation system, according to an embodiment. In an exemplaryembodiment, this figure illustrates a narrative framework generationsystem 100 that includes an IDE engine 130 for generating narrativeframeworks. The IDE engine 130 is coupled to a content generation engine120, an IDE server 150, and a narrative framework database 140. The IDEengine 130 is further coupled to a statistics provider 105, and clientdevices 160, 170 via a network 110.

Although not shown in FIG. 1, in some embodiments the statisticsprovider 105 can itself receive one or more information reports (e.g.,statistic reports) from one or more other sources (not shown in FIG. 1).In such embodiments, the statistics provider 105 can aggregate receivedinformation for subsequent transmission to the IDE engine 130, thecontent generation engine 120, the IDE server 150, and/or the narrativeframework database 140 via the network 110.

In such embodiments, the statistics provider 105 can send theinformation from a single physical location. Alternatively, thestatistics provider 105 can send data from multiple physical locations,each physical location being associated and/or affiliated with thestatistics provider 105. The statistics provider 105 can be owned,operated and/or administered by a third-party entity not related and/oraffiliated with the other elements of the narrative content generationsystem.

The IDE engine 130 can be any combination of hardware and/or software(executing in hardware) configured to define narrative contentframeworks (also referred to herein as narrative frameworks) based atleast in part on information received from the statistics provider 105,pre-stored information, and user-provided information. As discussedherein, a narrative framework generated by the IDE engine 130 can beused to define a narrative content portion (e.g., an article, report,summary, preview, bullet point, short-form text, etc.). The IDE engine130 can be, for example, a server device executing one or more softwaremodules configured to combine information (e.g., one or more phrasevariations in addition to text and associated criteria for definingnarrative frameworks), user-provided information/text, and statisticsreceived from the statistics provider 105 to define a narrativeframework that is applicable to characterize an event. Such an eventcould have already occurred in the past, is currently occurring, or canbe occurring in the future.

In some embodiments, the IDE engine 130 generates a preview narrativeframework (in other words, a preview of the narrative framework beingdefined) that has a substantively similar “look and feel” as thenarrative content portion. Such a preview narrative framework (typicallyincludes sample data from the statistics provider 105) allows a user toreview how a hypothetical narrative content portion will look when thedefined narrative framework is used to characterize an event. In thisexemplary embodiment, a user of system 100 can preview what thenarrative content portion for a future event may include. The sampledata included in the preview narrative framework can relate to astatistic of the event, e.g., a sample statistic. In some embodiments, auser can review a narrative framework in real time as it is beinggenerated by the IDE engine 130. The narrative framework generated bythe IDE engine can be sent to an IDE server 150 for presenting on aclient device 160. In an exemplary embodiment, a user can, in additionto reviewing a narrative framework, interact with the narrativeframework as it is being defined, e.g., for purposes of guiding theediting and directing changes to the narrative framework. As referred toherein, a preview narrative framework is formed by inserting/includingsample data into a narrative framework. Such insertion/inclusion canoccur while a narrative framework is being defined, or alternatively,after a narrative framework is completely defined. Also, an exemplaryembodiment of the present disclosure, more than one set or type ofsample data can be included as a part of a preview narrative framework.

In addition to the narrative framework, the content generation engine120 can also receive, from the IDE engine 130, one or more phrasesand/or phrase variations associated with the selected narrativeframework. In an exemplary embodiment, the phrases and/or phrasevariations can be associated with text elements, for example, words,phrases, sentences, paragraphs, etc. or, a combination thereof. Asdescribed herein, text elements can be associated with an author styleor a narrative tone of the given event, occurrence, fact, person, place,organization and/or thing.

The narrative framework database 140 can be a database and/or a databaseserver storing one or more databases including one or more narrativecontent narrative frameworks, identifiers of one or more persons,places, things, facts, events, occurrences, sports leagues, teams and/orathletes, locations, forecasts, organizations, etc., and/or statisticsand/or other information associated with the same. Additionally, thenarrative framework database 140 can store phrases, phrase variations,text elements, tone types, themes and/or theme types, and/or otherinformation associated with one or more narrative frameworks. Thenarrative framework database 140 is coupled to the IDE engine 130 andtherefore, exchanges information with the IDE engine 130 such that boththe IDE engine 130 and the narrative framework database 140 can stayup-to-date and remain synchronized with respect to theirstored/generated information.

The narrative framework database 140 can, in some embodiments, store orbe coupled to one or more database servers that storepreviously-generated narrative content portions defined by the contentgeneration engine 120. Such database servers can include one or morerelational databases including one or more relational database tables,similar in structure, type, format, hierarchy and/or organization tothose included in the narrative framework database 140. The narrativeframework database 140 can be included in and/or stored at the samephysical device as the IDE engine 130. Alternatively, one or moreportions of the narrative framework database 140 (e.g., entire databasesand/or relational database tables) can be stored across multipledevices, such as database server devices.

The IDE server 150 is operatively coupled, via the network 110, to theclient device 160 and to the client device 170. Thus, the IDE server 150can be configured to send narrative frameworks to either or both of theclient device 160 and the client device 170. Although not shown in FIG.1, in some embodiments, the IDE server 150 can serve narrativeframeworks to any number of client devices connected via the network110. In some embodiments, the IDE server 150 can serve narrativeframeworks via one or more web servers and/or application serversexecuting thereat. For example, the IDE server 150 can host and/orexecute a version of the Apache or Microsoft Internet Information Server(IIS) web servers to facilitate access to the narrative framework byclient devices.

In an exemplary embodiment, the IDE server 150 can be a physical deviceoperatively coupled to the narrative framework database 140.Alternatively, the IDE server 150 can be a software module executing ata computing device, such as a server device at which any of the contentgeneration engine 120, the IDE engine 130 and/or the narrative frameworkdatabase 140 is hosted.

Each of the client device 160 and the client device 170 can be anycomputing device (e.g., a personal computer, laptop, notebook, netbook,tablet, smartphone, mobile computing device) configured to receiveand/or display narrative frameworks as well as narrative contentreceived from the IDE server 150 via the network 110. In a non-limitingexample, the client device 160 can be a personal desktop computerexecuting a web browser or other client application capable of receiving(e.g., from a web server) and displaying dynamically-defined narrativeframeworks and/or narrative content similar to that described above. Ina non-limiting embodiment, the client device 170 can be a mobiletelephone (e.g., a web-enabled smartphone) capable of communicating, viathe Internet, with one or more web servers and/or databases. In such anembodiment, the client device 170 can receive one or more narrativeframeworks, narrative content portions, articles, reports, etc. and/ordisplay the same for viewing by a user. Although only two client devicesare shown in FIG. 1, this should not be considered limiting as in someembodiments any number of compatible client devices can be operativelyand/or physically coupled to the network 110, and thus capable ofreceiving and/or displaying narrative frameworks received from the IDEserver 150.

Turning to FIG. 2, which is an expanded view of an exemplaryimplementation of a schematic diagram that illustrates an integrateddevelopment environment (IDE) engine. This figure presents a systemblock diagram of an exemplary internal construction of an IDE engine200. The IDE engine 200 includes a processor 210 operatively coupled toa memory 220 and to a network card 230. In this non-limiting example ofan IDE engine internal composition, the memory 220 includes fivesoftware modules: a communication module 222, a statistics analysismodule 224, a content generation module 226, an error detection module256, and a narrative framework generation module 258. The IDE engine 200is coupled via network 215 to a display unit 260 on a client device. Inalternative non-limiting embodiments, the IDE engine 200 can includeadditional hardware modules and/or software modules (executing inhardware) not shown in FIG. 2.

The memory module 220 can include the communication module 222, thestatistics analysis module 224, the content generation module 226, theerror detection module 256, and the narrative framework generationmodule 258. In some embodiments, the memory 220 can include instructions(e.g., code) sufficient to define and/or execute the communicationmodule 222, the statistics analysis module 224, the content generationmodule 226, the error detection module 256, and the narrative frameworkgeneration module 258.

The narrative framework generation module 258 can include softwareinstructions (e.g., code) configured to cause the processor 210 todefine a narrative framework based at least in part on informationreceived from a statistics provider, pre-stored information, anduser-provided information. As discussed herein, a narrative frameworkgenerated by the IDE engine 200 can be used to define a narrativecontent portion (e.g., an article, report, summary, preview, bulletpoint, short-form text, etc.) and send one or more phrases thatcollectively define the narrative framework to the template generationmodule 258.

In a non-limiting embodiment, a narrative framework can be associatedwith one or more phrases; each phrase can be selected from one or morephrase variations. Further, phrases and/or phrase variations can be, forexample, words, phrases, sentences, paragraphs, text elements, etc.portions or, combinations thereof. In a non-limiting example, anarrative framework can include a first paragraph and a secondparagraph. The first paragraph can be selected from two paragraphvariations and the second paragraph can be selected from three paragraphvariations. In an additional non-limiting example, a narrative frameworkcan include more or fewer phrases/paragraphs, each selected from anynumber of phrase variations, the IDE engine 200 (e.g., the errordetection 256 included therein) detects an error when the first phrasefails to satisfy a criterion relative to the second phrase. In onenon-limiting example, a criterion can be based on the first phrase beinggrammatically consistent with the second phrase.

In some embodiments, the narrative framework generation module 258generates a preview narrative framework that has a substantively similar“look and feel” as the narrative content portion. Such a previewnarrative framework (typically includes sample data from a statisticsprovider) allows a user to review how a hypothetical narrative contentportion will look when the defined narrative framework is used tocharacterize an event. The sample data included in the preview narrativeframework can relate to a statistic of an event. In an exemplaryembodiment, a user can, in addition to reviewing a narrative framework,interact with the narrative framework as it is being defined, e.g., forpurposes of editing and making changes to the narrative framework.User-provided information/text can be in the form of configurationoptions, text, parameters, thresholds, criteria, and the like.

In an exemplary embodiment, the phrases or phrase variations to beincluded in a narrative framework can be entered by a user or they canbe pre-stored in the IDE engine 200, or a narrative framework database.In such an instance, the IDE engine 200 can receive a first phrasevariation and a second phrase variation, for example, from a clientdevice in response to a user input. Then, the IDE engine 200 comparesthe first phrase variation and the second phrase variation to determinean error, e.g., when the first phrase variation fails to satisfy acriterion relative to the second phrase variation. If there is no error,the IDE 200 engine can continue with receiving one or more phrasevariations, if any, or otherwise finalize the narrative framework.However, if there is an error, then the IDE engine 200 can receive analternate phrase variation, the alternate phrase variation differentfrom the second phrase variation. Should the received alternate phrasevariation also fails to satisfy a criterion relative to the first phrasevariation, another alternate phrase variation may be received. Thealternate phrase variation that satisfies the criterion relative to thefirst phrase variation may be selected for use in place of the secondphrase variation and any preceding alternate phrase variations.

In instances where one or more errors occur, the defined narrativeframework can include the first phrase variation and the selectedalternate phrase variation and not the second phrase variation. Also, insuch instances, the preview narrative framework (e.g., defined as a partof a narrative framework generation method) includes the first phrasevariation and the selected alternate phrase variation and not the secondphrase variation, the first phrase variation modified based on sampledata relating to a statistic of an event. In instances where sample datais pre-stored in a narrative framework database, the IDE engine 200 (viaan IDE server) can present, in whole or in part, the prestored sampledata for receiving, from the user, a selection corresponding to thesample data in the pre-stored sample data. In a non-limiting example,the portion of the narrative framework deemed to be in error by the IDEengine 200 can be shown with a different font, error boxes, underlining,error messages, error codes, or any suitable GUI indications.

In an exemplary embodiment, the phrases or phrase variations, caninclude or, otherwise be associated with each other by one or moreoperators. For example, the operators can include relational and/orlogical operators. If the operators are associated in a manner thatcauses the first phrase to fail to be uniquely associated with thesecond phrase, then an error can be indicated. Thus, an IDE engine candetect logical errors in combination with defining a narrativeframework. If one or more logical errors are detected, the IDE engine200, can receive one or more sets of operators from a user. However, ifno logical errors, etc. are detected, the IDE engine 200 can continuereceiving one or more phrase variations and/or operators, if any, orotherwise finalize the narrative framework. In a non-limiting example ofnarrative framework generation, an expression “$A OR $B AND $C,” can beambiguous and interpreted as either “($A OR $B) AND $C” or alternativelyas “$A OR ($B AND $C).” In this example, “OR” and “AND” are standardBoolean operators. Thus, with reference to this example, the IDE engine200 can detect a logical error in the expression, and notify the userwith an error indication. To minimize such conditional errors, a usercan supply sets of parentheses “0” operators to be included in theexpression to provide greater precision in evaluating the expression.

In some embodiments, the narrative framework generation module 258 canassociate (or, assign) a narrative framework type for use in selecting anarrative framework itself. The narrative framework type can bedetermined based on, for example, a narrative framework type identifierreceived in conjunction with the event ID. Alternatively oradditionally, the narrative framework type can be determined based atleast in part on a content type associated with one or more virtualevents (e.g., information, data and/or statistics associated with avideo game, a fantasy sports league and/or team, etc.), including anoccurrence, fact, character, result and/or other information about whichthe narrative content will be defined. The narrative framework type canbe, for example, an event preview narrative framework type, anin-progress event report narrative framework type, an event summarynarrative framework type, as well as custom types created by a user.

A narrative framework type can be of any of the following narrativeframework types: game preview, in-game progress report, game recap,tournament preview, tournament recap, financial reports (e.g., based onan organization's performance quarterly, annually, etc.) and the like.Alternatively, if an event ID (e.g., corresponding to an event) isassociated with an organization-driven event, such as anorganization-driven request for long-form or short-form contentassociated with an occurrence, idea, etc., the narrative framework canbe a short-form report narrative framework type, an email narrativeframework type, a comparison narrative framework type, an annualinvestor report type, a fiscal report type, a sustainability reporttype, or a custom narrative framework type developed in response to aclient request.

The content generation module 226 can include software instructions(e.g., code) configured to cause the processor 210 to define newnarrative content (e.g., an article, an email, a report, a summary, apreview, one or more bullet points, one or more sentences, one or moreparagraphs, a vignette, etc.). Such narrative content can include one ormore phrase variations, the one or more phrase variations associatedwith text elements (e.g., phrases, sentences, paragraphs, etc. or, acombination thereof). Thus, the content generation module 226 can selectphrase variations as well as text elements included therein.

The content generation module 226 can select a narrative framework (inreal time or pre-stored in a narrative framework database) for use indefining the narrative or the narrative content portion. Once anarrative framework is selected, the content generation module 226 candetermine, define, or select a narrative tone to be associated with thenew narrative content portion. In some embodiments, the contentgeneration module 226 can analyze the received statistics and/or otherinformation to determine which narrative tone would be appropriate basedon the received information.

The content generation module 226 can next define a narrative contentportion using the selected narrative framework. In some embodiments,each phrase (e.g., portion of language and/or variable identifiers)included in the narrative framework can be associated with multiplephrase variations. In such embodiments, the content generation module226 can, for each phrase from the narrative framework, first select(e.g., randomly select, select under rule guidance) a single phrasevariation from the multiple phrase variations associated with thatphrase, and then write the text and/or data included in that selectedphrase variation to the narrative content portion in lieu of theoriginal phrase and/or phrase identifier included in the selectednarrative framework.

The error detection module 256 can include software instructionsimplemented in software code configured to cause the processor 210 todetect an error when one or more phrases fails to satisfy a criterion.Further, the phrases, in some embodiments, can include or, otherwise beassociated with each other, by one or more operators. In a non-limitingexample, the operators can include Boolean, relational, and/or otherlogical operators. In such instances, the error detection module 256 candetect an error when the operators are associated in a manner thatcauses the first phrase to fail to be uniquely associated with anysecond or alternate phrase.

Upon detection of an error, the error detection module 256 can beconfigured to communicate the error indication to the narrativeframework generation module 258 such that the narrative frameworkgeneration module 256 can take appropriate action in defining anarrative framework. In such an embodiment, upon receiving the errorindication from the error detection module 256, the narrative frameworkgeneration module 258 can be configured to receive one or more differentphrases and/or one or more different operator(s). As discussedpreviously herein, in some instances, the narrative framework generationmodule 258 provides indication of the error to a user.

The communication module 222 can include software instructions (e.g.,code) configured to cause the processor 210 to exchange information(e.g., data packets, data cells) with another hardware device. In anon-limiting example, the communication module 222 can includeinstructions configured to cause the processor 210 and/or the networkcard 230 to receive statistics and/or other information from astatistics provider. The communication module 222 can also includeinstructions configured to cause the processor 210 and/or the networkcard 230 to exchange one or more data packets with one or moredatabases.

The statistics analysis module 224 can include software instructions(e.g., code) configured to cause the processor 210 to analyze one ormore statistics and/or other information received and/or stored at theIDE engine 200 (at, e.g., the memory 220 and/or another memory includedin and/or coupled to the IDE engine 200). For example, the statisticsanalysis module 224 can be configured to compute one or more derivativestatistics and/or metrics based at least in part on received statisticsand/or other information such as statistics received/stored from/at thenarrative framework database 150 and/or the content generation module226.

The display unit 260, on a client device 160, can be, for example, aliquid crystal display (LCD) unit or a light emitting diode (LED)alpha-numeric display unit that can display a GUI generated by the IDEEngine 200. The Integrated Development Environment (IDE) generated bythe IDE Engine 200 is considered to include a GUI. In some embodiments,the GUI is delivered via an IDE server, and is displayed on the displayunit 260. In some embodiments, the GUI presented allows one or moreusers to interact with the IDE Engine 200.

The network card 230 can be operatively and/or physically coupled to theprocessor 210. In this manner, the processor 210 can, via the networkcard 230, exchange information with one or more other devices via anetwork 215.

Turning now to FIG. 3, this figure presents a schematic block diagram300 that illustrates a narrative framework generation system forgenerating narrative frameworks. The IDE engine 330 is operativelycoupled to a statistics provider 305 (via a network 310), a contentgeneration engine 320, an IDE server 350, and a narrative frameworkdatabase 340. The IDE server 350 is coupled to the IDE engine 330 andthe narrative framework database 340, and via the network 310, to aclient device 360 and to a client device 370. The system 300 can besimilar to system 100 and can include similar components as includedtherein.

In an exemplary embodiment, a user operating a client device 370 candefine a narrative framework. Accordingly, a client device 370 can senda data communication 391 to the IDE server 350 via the network 310, inresponse to a user input. The data communication 391 can be formattedfor transmission over a network communication channel, for example, anEthernet packet, a data cell, and/or the like, and can include data,statistics and/or a request for defining a narrative framework relatedto an event. Such a request can be formatted according to the HypertextTransfer Protocol (HTTP) or other known protocol. For example, therequest can be sent from a web browser or other client applicationexecuting at the client device 370. Alternatively, the request caninclude a subject ID associated with a subject or topic to be describedin the new narrative framework. An event can, in some embodiments, beidentified by an event ID. A narrative framework can be defined inanticipation of a future potential event, at a termination of a givenevent associated with the event ID (e.g., a sporting event), at periodictime intervals in connection with a predefined schedule, etc.

The IDE server 350 communicates a client request as a data communication392 for defining a narrative framework to the IDE engine 330. Uponreceipt of the data communication 392 from IDE server 350, the IDEengine 330 can query the narrative framework database 340 via datacommunication 393 that includes a request for phrase variations,statistics and/or other information (e.g., a database request, such as aStructured Query Language (SQL) query) for use in defining new narrativeframeworks. In an exemplary embodiment, the request can include areference identifier, such as an event ID associated with a real-worldevent or occurrence, a virtual-world event, etc.

The narrative framework database 340 responds with a data communication394 that can include, for example, a set of phrase variations associatedwith defining a narrative framework. In some embodiments, the datacommunication 394 can also include criterion, text, thresholds,parameters, statistics, data and/or other relevant information for useby the IDE engine 330 in defining the new narrative framework. In someembodiments, a statistics provider 305 can provide informationassociated with the specified event to the IDE engine 330 via a datacommunication 395. Such information can be used in defining a narrativeframework.

During the definition of a narrative framework, a user operating aclient device 370 can review and interact with the narrative framework,for example, in connection with providing/selecting phrases, phrasevariations, variable identifiers, operators, thresholds, parameters,criteria associated with comparing phrases/phrase variations, and/or anyinformation applicable to defining a narrative framework. In someembodiments, a user can also provide sample data to be included in apreview narrative framework. A user can thus review and/or edit anarrative framework as it is being defined in real time.

Once a narrative framework has been defined, the IDE engine 330 sends adata communication 396 to the IDE server 350. In some embodiments, thedata communication 396 includes a preview narrative framework, in wholeor in part, that has a substantively similar “look and feel” as anarrative content portion that can be created using the definednarrative framework. Such a preview narrative framework allows a user toreview how a hypothetical narrative content portion will look when thedefined narrative framework is used to characterize an event. The sampledata included in the preview narrative framework can relate to astatistic of an event. The IDE server 350 communicates the narrativeframework defined by the IDE engine 330 to the client device 370 via adata communication 397. In some embodiments, this data communication 397can include Hypertext Markup Language (HTML) content for transmission toa web browser executing at the client device 370.

In some embodiments, the IDE server 350 can receive a request for apreviously-defined narrative framework from client device 370 via datacommunication 391. Accordingly, the IDE server 350 can query thenarrative framework database 340 for such a previously-defined narrativeframework stored in narrative framework database 340. In turn, thenarrative framework database 340 can respond with the requestednarrative framework. Such a narrative framework can be then presented bythe IDE server 350 for display on a display unit of client device 370.In an exemplary embodiment, the content generation engine 320 canrequest the narrative framework database 340 for narrative frameworksstored in narrative framework database 340. Subsequently, the narrativeframeworks can be used by the content generation module 320 in definingnarrative content portions or narrative portions.

Turning now to FIG. 4, this figure presents a block diagram 400 thatillustrates receiving phrase variations at different time instances andsimultaneously defining a narrative framework based thereon.Specifically, the figure illustrates a set of preview narrativeframeworks 406, 412 and 422 at time instances T1, T2 and T3 (T3>T2>T1),e.g., as the narrative frameworks are being defined in real time. Arequest for defining a narrative framework can be initiated by a useroperating a client device. In an exemplary embodiment, the request todefine a narrative framework can be after an event has already takenplace. The request to define a narrative framework can be proactive,i.e., in anticipation of a future potential event. In an alternativeembodiment, the request to define a narrative framework can be based ona predetermined schedule or triggered in response to an initialreal-world event or occurrence, such as a completion of an event,meeting, sports game or match, end of a fiscal quarter at anorganization, etc. Additionally, the request to define a narrativeframework can be based triggered in response to a virtual-world event,such as a completion of a video game, a fantasy league (e.g., a fantasysports league) competition or matchup, etc.

After receiving a request to define a narrative framework, an IDE enginecan receive one or more phrase variations from the user or from anarrative framework database. In addition, in some embodiments, an IDEengine can also receive sample data related to an event. The sample datacan be provided by a user, a statistics provider, or pre-stored in anarrative framework database.

In a non-limiting example, at time instance T1, a first phrase variation402, “Phrase Variation 1” and a first set of sample data 404 “SampleData 1” are received at an IDE engine, and accordingly included in apreview narrative framework 402. Preview narrative framework 406 isdisplayed to the user via Graphical User Interface (GUI) 405, at timeinstance T1. At time instance T2, a second phrase variation 408, “PhraseVariation 2” and a second set of sample data 410 “Sample Data 2” arereceived, and included in a preview narrative framework 412. Thus, attime instance T2, preview narrative framework 404 includes “PhraseVariation 1,” “Phrase Variation 2,” “Sample Data 1,” and “Sample Data2.” Preview narrative framework 412 is displayed to the user viaGraphical User Interface (GUI) 407, at time instance T2. At timeinstance T3, a third phrase variation 414, “Phrase Variation 3,” a thirdset of sample data 416 “Sample Data 3” and two sets of operators 418,420 (“Operator 1” and “Operator 2”) are received, and included in apreview narrative framework 422. Thus, at time instance T3, previewnarrative framework 404 includes “Phrase Variation 1,” “Phrase Variation2,” “Sample Data 1,” “Sample Data 2,” “Sample Data 3,” “Operator 1,”“Operator 2.” Operators can be used to create associations between oneor more phrase variations. Thus, “Phrase Variation 3” can be associatedwith “Phrase Variation 1” and “Phrase Variation 2” via “Operator 1” and“Operator 2.” Preview narrative framework 422 is displayed to the uservia Graphical User Interface (GUI) 417, at time instance T3.

In an exemplary embodiment, an IDE engine performs various checks todetermine that the narrative framework is free from logical errors,computational errors, statistical errors, syntax errors, run-timeerrors, and the like. For example, the IDE system can perform a check attime instance T2 that “Phrase Variation 1” is grammatically consistentwith “Phrase Variation 2.” Again, at time instance T3, the IDE enginecan check that “Phrase Variation 1,” “Phrase Variation 2,” and “PhraseVariation 3” are grammatically consistent with each other.

In an alternative exemplary embodiment, a narrative framework includestwo phrases, wherein a first phrase includes two phrase variations, anda second phrase includes three phrase variations, an IDE engine 200performs a multistage grammar check to determine that the phrasevariations are grammatically consistent. In this error check, an IDEengine 220 can perform six different error checks, based on comparingdifferent combinations of the six phrase variations using the two phrasevariations in the first phrase and the three phrase variations in thesecond phrase.

In an exemplary embodiment, the IDE engine 200 performs a firstmultistage grammar check prior to inclusion of the sample data, and thena second multistage grammar check after inclusion of sample data, i.e.,the second multistage being performed on the preview narrativeframework. More than one set or type of sample data can be included as apart of a preview narrative framework. Thus, the second multistagegrammar check can be performed repeatedly on different sets of sampledata. Further, repeating the second multistage grammar check usingdifferent sets of sample data can indicate a greater possibility oferrors in a narrative framework. In one such scenario applicable to anevent such as a baseball game, a phrase variation (included in anarrative framework) is a sentence “$HOME_TEAM_NAME$ needs a$PLAYER_POSITION$ that can play really well.” Using a first set ofsample data, if “shortstop” is inserted in “$PLAYER_POSITION$,” thenthis sentence is grammatically correct. If a second set of sample datais used, in which “outfielder” is inserted in “$PLAYER_POSITION$,” thenthe IDE engine 200, can detect an error. This is because, using thesecond set of sample data, the phrase variation should be the sentence$HOME_TEAM_NAME$ needs an $PLAYER_POSITION$ that can play well.”

Additionally, in this exemplary embodiment, the IDE engine can, at timeinstance T3, check that “Operator 1” and/or “Operator 2” creates aunique association between “Phrase Variation 1,” “Phrase Variation 2,”and “Phrase Variation 3.” However, it will be apparent to one ofordinary skill in the art that additional alternate phrases may be usedin this comparison and error determination in place of any or all of thePhrase Variations herein presented. In case one or more errors aredetected at any time instance, the IDE engine displays the error(s). Auser can review such errors (typically presented to a display unit on aclient device by an IDE server) and fix such errors as necessary. Insome embodiments, the IDE engine automatically fixes the errors, inwhole or in part, without requiring any user feedback.

Turning to FIG. 5, this figure presents an exemplary view of a method ofdefining a narrative framework that can be applicable to characterize anevent. Such a narrative framework can be based, at least in part oninformation received from a statistics provider, pre-stored information,and user-provided information. As discussed previously herein, anarrative framework generated by an IDE engine can be used to define anarrative (e.g., an article, report, summary, preview, bullet point,short-form text, etc.). Further, as discussed previously, the narrativeis related to one or more statistics based on an occurrence selectedfrom the following group: a business event, a current event, ahistorical event, a virtual event, a sports event, a player performanceduring an in-progress sporting event, a financial prediction, an emailrequest.

In this exemplary embodiment, the method 500 shows that a server devicereceives a first phrase variation and a second phrase variation from aset of phrase variations, at 502. The server displays an errorindication when the first phrase variation fails to satisfy a criterionrelative to the second phrase variation, at 510. For example, thecriterion can be based on a context associated with the potential event.In another example, an error can be detected 525 when the first phrasevariation is grammatically inconsistent with the second phrasevariation. In response to the error indication 525, the method 500receives an alternate phrase variation different from the second phrasevariation, at step 520 and performs the error check 525 again. If anerror is detected 525 between the first phrase variation and thereceived alternate phrase variation, an additional alternate phrasevariation may be received to replace the previously received alternatephrase variation. This method step may recur as many times as necessaryto select a phrase variation with which there are no detected errors 525between the first phrase variation and the selected alternate phrasevariation. A narrative framework (or, content narrative framework)applicable to characterize an event is defined that includes the firstphrase variation and the selected alternate phrase variation and not thesecond phrase variation, at 530. Such an event can have already occurredin the past, is currently occurring, or can be occurring in the future.

In a non-limiting example involving generating internal reports for anorganization, an IDE engine receives a request from a user at theorganization to define a narrative framework. For example, the IDEengine receives a first phrase variation that is a sentence “[D]espitedeclining by $PERCENTAGE$ cash flow reserves of $ORGANIZATION_NAME$remained high above $DOLLAR_AMOUNT$ for the fiscal year ending$MONTH_NAME$ $YEAR_NAME$.” Next, the IDE engine receives a second phrasevariation that is a sentence “[T]he cash flow reserves of$ORGANIZATION_NAME$ never declined and continued to rise during thefiscal year ending $MONTH_NAME$ $YEAR_NAME$.” For each variableidentifier included in the afore-mentioned phrase variations, sampledata can be received from a user, a narrative framework database, or astatistics provider and corresponding to that variable identifier.Examples of sample data can include and are not limited to: a statistic,datum, name, a numerical or lexicographical value, etc. Additionally,the first, second, and third phrase variations can be received from auser or a narrative framework database, in embodiments of the presentdisclosure.

In some embodiments, the IDE engine detects that the first phrasevariation fails to satisfy a criterion relative to the second phrasevariation. In the above-mentioned example, the first phrase variationindicates that the cash flow reserves of an organization declined by acertain percentage. The second phrase variation, however, indicates thatthe cash flow reserves of an organization never declined and continuedto rise during a fiscal year. Accordingly, the IDE engine detects thatthere is a contextual error as the first phrase variation isinconsistent with the second phrase variation. Consequently, the IDEengine receives an alternate phrase variation that is a sentence“$ORGANIZATION_NAME$ had a steady cash flow for the months of$TIME_INTERVAL$ but a declining cash flow during for the months of$TIME_INTERVAL$.” If the IDE engine does not detect any error withrespect to the alternate phrase variation, the alternate phrasevariation becomes the selected alternate phrase variation and a contentnarrative framework is defined applicable to characterize theperformance of the organization. The content narrative framework caninclude the first phrase variation and the selected alternate phrasevariation, but not the second phrase variation.

In an exemplary embodiment, the user at the organization who requestedto define a narrative framework can view the narrative framework as itis being defined. Further, in some embodiments, the user can reviewerrors detected by the IDE engine as the narrative framework is beingdefined. If there is no error, the IDE engine can continue withreceiving one or more phrase variations, if any, or otherwise finalizethe narrative framework.

The IDE engine generates a preview narrative framework that includes thefirst phrase variation and a selected alternate phrase variation and notthe second phrase variation. Such a preview narrative framework canfurther include sample data corresponding to the variable identifiers inthe first phrase variation and the alternate phrase variation. Thus, apreview narrative framework can be “[D]espite declining by 7% cash flowreserves of Acme Coffee remained high above $51 billion for the fiscalyear ending April 2014 . . . Acme Coffee had a steady cash flow for themonths of July 2013-January 2014 but a declining cash flow during forthe months of January 2014-April 2014.”

Turning to FIG. 6, this figure presents an exemplary view of a method600 of detecting logical errors in a narrative framework. In thisfigure, a server device receives from a set of phrase variations atleast (i) a first phrase variation and (ii) a second phrase variation,the first phrase variation associated with the second phrase variationusing a first set of operators (e.g., relational operators or logicaloperators), at 602. The server device displays an error indication whenthe first phrase variation fails to satisfy a criterion relative to thesecond phrase variation, at 610. For example, the criterion can indicatethat the first phrase variation is uniquely associated with the secondphrase variation using the first set of operators. In response to theerror indication, the method 600 receives a second set of operators tobe included in the first phrase variation and the second phrasevariation, at 620. The IDE server 150 displays the first phrasevariation and the second phrase variation in real time on a display unitof a client device, at 630. In an exemplary embodiment, the first set ofoperators is included in the second set of operators. In an alternateexemplary embodiment, the first set of operators can be different fromthe second set of operators.

In response to an error indication, the IDE engine, in some embodiments,receives a second set of operators to be included in the first phrasevariation. Thus, with respect to the above-mentioned example, the IDEengine receives the parenthesis operator “( )” as a second set ofoperators to be included in “$A OR $B.” Accordingly, the IDE engineinserts the parenthesis operator around the first phrase variation, anddisplays the first phrase variation and the second phrase variation inreal time. In other words, the IDE engine displays “($A OR $B) AND $C”to a display unit on a client device. It will be noted that the exampleif for illustrative purposes only. In embodiments of the presentdisclosure, an IDE engine 200 can detect a variety of errors includingbut not limited to logical errors, computational errors, statisticalerrors, syntax errors, run-time errors, and the like.

Turning to FIG. 7, this figure presents an exemplary view a screenshotof a GUI that illustrates an exemplary narrative framework 700.Specifically, narrative framework 700 is a preview narrative frameworkas displayed to a user. Narrative frameworks can be defined by an IDEengine simultaneously as the user is entering information. Users canreview such narrative frameworks in real time while the narrativeframeworks are being defined. Region 702 of narrative framework 700shows a list of exemplary phrase variations (or, variables that areassigned values) associated with narrative framework 700. Phrasevariations can be text or they can be numerical quantities. Accordingly,in many instances, phrase variations can have a sum, average, standarddeviation, etc. as shown in region 708. Furthermore, phrase variationscan involve decimal numbers. A user can provide a selection that causesthe IDE engine to represent a phrase variation in various formats, suchas according to a date format, as shown in region 708. In someembodiments, the phrase variations are pre-stored within a narrativeframework database. In some embodiments, the phrase variations can besupplied by the user (e.g., as shown with “Create New Variable” tab704). Narrative framework 700 also shows that phrase variations can havea hierarchical relationship. For example, a “this_team” phrase variation706 can include branches such as a phrase variation 710 “Marcus_Paige,”a phrase variation 712 “James_McAdoo” and others. Each such branchedphrase variation can further include “points,” “o_rebounds,”“d_rebounds,” “steals” etc., as shown in region 714.

Turning to FIG. 8, this figure presents an exemplary view of ascreenshot of a GUI that illustrates configuration options available toa user for an exemplary narrative framework 800, according to anembodiment. Specifically, narrative framework 800 is a preview narrativeframework as displayed to a user. Region 802 of narrative framework 800shows a user can select phrase variation 804 “this_team.points.value”and phrase variation 806 “other_team.points.value” that can be used byan IDE engine as comparison criteria when selecting certain text orphrase variation. For example, as shown in region 808, if“this_team.points.value” is greater than “other_team.points.value,” thenthe phrase variation (e.g., a word) “topped” is used in the narrativeframework. When “this_team.points.value” is less than“other_team.points.value,” then the word “fell to” is used in thenarrative framework, as indicated in region 810. If“this_team.points.value” is equal to “other_team.points.value,” then theword “tied” is used in the narrative framework, as indicated in region812. Hence, this illustrates the flexibility of an IDE engine informulating various criteria that can be used in defining narrativeframeworks. In some embodiments (e.g., as shown in boxes 808, 810, and812), a user can enter the text to be used in the defining the narrativeframework. In some embodiments, an IDE engine can use pre-defined textto be used in defining the narrative framework. Button 814 in narrativeframework 800 shows that an IDE engine, in an exemplary embodiment,allows users to enter synonyms for the text to be included in definingnarrative frameworks.

Turning to FIG. 9, this figure presents an exemplary view of ascreenshot of a GUI that illustrates configuration options available toa user for an exemplary narrative framework 900, according to anembodiment. Specifically, narrative framework 900 is a preview narrativeframework as displayed to a user. Region 902 of narrative framework 900shows a user can select phrase variation 904 “this_team.points.value”and phrase variation 906 “other_team.points.value” from a drop-downmenu. Additionally, a user can configure one or more thresholdsassociated with each of these phrase variations, as indicated in region908. Further, region 910 in narrative framework 900 shows that a usercan set/configure text options when certain criterion associated withthese phrase variations are satisfied. In an exemplary embodiment, anIDE engine automatically sets thresholds and other parameters for phrasevariations as necessary.

Turning to FIG. 10A, this figure presents an exemplary view of ascreenshot of a GUI that illustrates an exemplary narrative framework1000 at a first time instance. Specifically, narrative framework 1000 isa preview narrative framework as displayed to a user. Region 1002 ofnarrative framework 1000 shows phrase variations and their associatedvalues. For example, a “game_date” phrase variation 1006 is assigned avalue “Tuesday, February 4.” In addition, region 1008 highlights variouscriteria and text associated with other phrase variations used indefining narrative framework 1000. Region 1004 shows a paragraph (or,generally a narrative content portion) of narrative framework 1000 inreal time.

Turning to FIG. 10B, this figure presents an exemplary view of ascreenshot of a GUI that illustrates an exemplary narrative framework1100 at a second time instance, after the first time instance.Screenshot at a first time instance is shown in FIG. 10A. Thus, region1102 in narrative framework 1100 is substantively similar to region 1002in FIG. 10A. Also, region 1104 in narrative framework 1100 issubstantively similar to region 1004 in FIG. 10A. Specifically,narrative framework 1100 is a preview narrative framework as displayedto a user. In FIG. 10B, region 1106, shows a paragraph of narrativeframework 1100 in real time. In some embodiments an IDE engine canselect between two paragraphs or, more generally between two narrativecontent portions, based on one or more criteria, such as when one ormore phrase variations fail to satisfy a criterion. In this non-limitingexample, it is shown that an IDE engine selects the narrative contentportion in region 1104 or the narrative content portion in region 1106based on the criteria that a phrase variation“this_team.doubles-doubles” equals zero, or alternatively is greaterthan zero. Such criteria are shown in regions 1108 and 1110 respectivelyin narrative framework 1100.

Turning to FIG. 11, this figure presents an exemplary view of ascreenshot of a GUI that illustrates exemplary sample data 1200 relatingto potential statistics of sports teams associated with a potentialsports event. For example, region 1202 shows a data source named as“Filename.csv” having headers 1204, 1206, 1208, 1210, 1212, and 1214respectively entitled: “Team,” “Player,” “Hits,” “Walks,” “Runs,”“Errors.” These headers can be associated with one or more phrasevariations that can be used in defining narrative frameworks. In anon-limiting example, header 1204 is associated with a phrase variation1216 “Braves.” Header 1206 is associated with a phrase variation 1218“Maddox,” etc. Sample data relating to potential statistics can beprestored in the narrative framework database, provided by a statisticsprovider, provided by a user, or can be a combination of the above.

In examples discussed herein, a narrative framework has been associatedwith two phrase variations. In some embodiments, however, a narrativeframework can have more or fewer phrase variations. For example, anarrative framework can be associated with one or more phrases, whereeach phrase can be selected from one or more phrase variations. Further,phrases and/or phrase variations can be, for example, words, phrases,sentences, paragraphs, text elements, etc. portions or, combinationsthereof.

While certain illustrative embodiments have been described, it isevident that many alternatives, modifications, permutations andvariations will become apparent to those skilled in the art in light ofthe foregoing description.

What is claimed is:
 1. A method for generating narrative content for apotential real-world event via a computer-implemented graphical userinterface and narrative content generation system, the methodcomprising: receiving, from an integrated development environment (IDE)system using phrase variations from a narrative framework databasestoring sets of phrase variations, a generated narrative framework;generating a display on a display unit of a computing device, thedisplay for representing the received narrative framework and comprisingfirst and second phrase variations received from the IDE system and thenarrative framework database; determining that the first phrasevariation fails to satisfy a criterion relative to the second phrasevariation and generating an error indication for the display; presentinga third phrase variation on the display, the third phrase variationreceived from the IDE system; receiving an input from a user, indicatingthat the third phrase variation is to be used instead of the secondphrase variation for the generation of the narrative framework;generating for display on the display unit, a representation of thenarrative framework received from the IDE system, the narrativeframework comprising the first phrase variation and the third phrasevariation and not the second phrase variation; and presenting, on thedisplay unit, a narrative content preview generated from a contentgeneration system used for applying real-world event information tonarrative frameworks to generate narrative content and coupled to theIDE and the computing device, the narrative content preview comprisingpopulating of the first phrase variation and the third phrase variationwith sample information for the potential real-world event.
 2. Themethod of claim 1, wherein the criterion is based at least in part on acontext associated with a potential event.
 3. The method of claim 1,wherein the criterion is based at least in part on a grammaticalconsistency between the first phrase variation and the second phrasevariation.
 4. The method of claim 1, further comprising: presenting onthe display unit a plurality of pre-stored sample information for thepotential real-world event and a user selection interface; and receivingfrom the user, via the user selection interface, a selection of sampleinformation for populating the content preview.
 5. The method of claim4, wherein the user selection of sample information includes the sampleinformation for populating the first phrase variation and second phrasevariation.
 6. The method of claim 1, wherein the narrative contentpreview received from the IDE system and the content generation systemis based at least in part on a tone associated with the potentialreal-world event.
 7. The method of claim 6, wherein the potentialreal-world event is selected from a following group: a business event, acurrent event, a historical event, a virtual event, a sports event, aplayer performance during an in-progress sporting event, a financialprediction, an internal reporting event.
 8. A system comprising: aprocessor; and a memory having computing instruction stored therein,which, when executed by the processor, performs operations comprising:receiving, from an integrated development environment (IDE) system usingphrase variations from a narrative framework database storing sets ofphrase variations, a generated narrative framework; generating a displayon a display unit of a computing device, the display for representingthe received narrative framework and comprising first and second phrasevariations received from the IDE system and the narrative frameworkdatabase; determining that the first phrase variation fails to satisfy acriterion relative to the second phrase variation and generating anerror indication for the display; presenting a third phrase variation onthe display, the third variation received from the IDE system; receivingan input from a user, indicating that the third phrase variation is tobe used instead of the second phrase variation for the generation of thenarrative framework; generating for display on the display unit, arepresentation of the narrative framework received from the IDE system,the narrative framework comprising the first phrase variation and thethird phrase variation and not the second phrase variation; andpresenting, on the display unit, a narrative content preview generatedfrom a content generation system used for applying real-world eventinformation to narrative frameworks to generate narrative content andcoupled to the IDE and the computing device, the narrative contentpreview comprising populating of the first phrase variation and thethird phrase variation with sample information for a potentialreal-world event.
 9. The system of claim 8, wherein the criterion isbased at least in part on a context associated with the potential event.10. The system of claim 8, wherein the criterion is based at least inpart on a grammatical consistency between the first phrase variation andthe second phrase variation.
 11. The system of claim 8, wherein theoperations further comprise: presenting on the display unit a pluralityof pre-stored sample information for the potential real-world event anda user selection interface; and receiving from the user, via the userselection interface, a selection of sample information for populatingthe content preview.
 12. The system of claim 8, wherein the userselection of sample information includes the sample information forpopulating the first phrase variation and second phrase variation.
 13. Amethod for generating narrative content for a potential real-world eventvia a computer-implemented graphical user interface and narrativecontent generation system, the method comprising: receiving, from anintegrated development environment (IDE) system using phrase variationsfrom a narrative framework database storing sets of phrase variations, agenerated narrative framework; generating a first display on a displayunit of a computing device, the display for representing the receivednarrative framework and comprising: a data variable display region; anda content preview region; presenting, in the data variable displayregion, a label for a data variable and a set of phrase variationsassociated with the data variable from the narrative framework databasestoring sets of phrase variations; presenting, in the content previewregion, a narrative content preview generated from a content generationsystem coupled to the narrative framework database and the IDE, thenarrative content preview having real-world event information applied tothe represented narrative framework; generating a second display for thedisplay unit, the second display for comparing data variable values andcomprising: a data variable selection region; a data comparator region;a first comparison result region; a second comparison result region; anda content preview region; receiving, via the data variable selectionregion, a first user selection of one or more data variables; receiving,via the data comparator region, a second user selection of a comparisonoperation for comparing values of the one or more selected datavariables; receiving, via the first comparison result region, a thirduser selection of a first comparison phrase variation; associating, inthe narrative framework, the first comparison phrase variation to afirst outcome for an application of the comparison operation to the oneor more data variables; receiving, via the second comparison resultregion, a second comparison phrase variation; associating, in thenarrative framework, the second comparison phrase variation to a secondoutcome for the application of the comparison operation to the one ormore variables; and presenting, in the content preview region, a previewfrom the content generation system, the preview having real-world eventinformation applied to the represented narrative framework, andincluding either the first comparison phrase variation or the secondcomparison phrase variation.
 14. The method of claim 13, furthercomprising: presenting a create variable display region in the firstdisplay; receiving a user indication, through the create variabledisplay region, that a new label is to be created; receiving a fourthuser selection of one or more phrase variations from the set of phrasevariations; associating the new label with the selected phrasevariations.
 15. The method of claim 13, further comprising: receiving afourth user selection of the one or more data variables via a seconddata variable selection region of the second display; comparing a valueof a first data variable and a value of the second data variable usingthe received comparison operation; and associating the receivedcomparison phrase variations in the narrative framework with outcomesfrom the compared variable values.
 16. The method of claim 13, furthercomprising: highlighting a region within the content preview region ofthe second display, the highlighted region including the firstcomparison phrase variation corresponding to the outcome of theapplication of the comparison operation to the one or more variables.17. The method of claim 13 wherein the comparison operation is athreshold operation.
 18. The method of claim 13, further comprising:presenting a second preview from the content generation system in asecond content preview region of the second display; wherein the firstpreview includes the first comparison phrase variation and an indicatorfor the first outcome, and the second preview includes the secondcomparison phrase and an indicator for the second outcome.
 19. Themethod of claim 13, wherein the content preview received is based atleast in part on a tone associated with the real-world event.
 20. Themethod of claim 13, further comprising: receiving statistics from astatistics provider system coupled to the content generation systemthrough a communications network; wherein the presented preview withreal world event information includes the received statistics.